import java.util.Arrays;

public class TesDemo6 {
    public static void main10(String[] args) {
        int []array={1,2,3,4,5,6};
        int []array2=new int [array.length];
        array2=Arrays.copyOf(array,array.length);
        System.out.println(Arrays.toString(array2));
    }


    //给定一个有序整型数组, 实现二分查找
    public static  void toFind(int []array,int k){
        int left=0;
        int right=array.length-1;
        while(left<=right){
            int mid=(left+right)/2;
            if(k>array[mid]){
                left=mid+1;
            }else if(k<array[mid]){
                right=mid-1;
            }else{
                System.out.println("找到了,下标是:"+mid);
                break;
            }
        }
    }
    public static void main9(String[] args) {
        int []array={1,2,3,4,5,6,8};
        int k=8;
        toFind(array,k);
    }


    //给定一个整型数组, 判定数组是否有序（递增）
    public static boolean fac(int []array){
        for(int i=0;i<array.length-1;i++){
            if(array[i]>array[i+1]){
             return false;
            }
        }return true;
    }
    public static void main8(String[] args) {
        int []array={1,2,3,4};
        System.out.println( fac(array));
    }


    //给定一个整型数组, 实现冒泡排序(升序排序)
    public static void main7(String[] args) {
        int j=0;
        int i=0;
        int []array={1,5,6,4,9,0,2,7,3,8};
      for (i=array.length-1;i>0;i--){
          for(j=0;j<i;j++){
              int tem=0;
              if(array[j+1]>array[j]){
                  tem=array[j];
                  array[j]=array[j+1];
                  array[j+1]=tem;
              }
          }
      }
        System.out.println(Arrays.toString(array));
    }


    // 给定一个非空整数数组，除了某个元素只出现一次以外，其余每个元素均出现两次。找出那个只出现了一次的元素。
    public static void main6(String[] args) {
        int []array={1,2,2,1,3};
        int tem=array[0];
        for(int i=1;i<array.length;i++){
            tem^=array[i];
        }
        System.out.println(tem);
    }


    //创建一个 int 类型的数组, 元素个数为 100, 并把每个元素依次设置为 1 - 100
    public static void main5(String[] args) {
        int []array=new int [100];
        for(int i=0;i<100;i++){
            array[i]=i+1;
            System.out.print(array[i]+" ");
        }
    }

//实现一个方法 printArray, 以数组为参数, 循环访问数组中的每个元素, 打印每个元素的值.
    public static void prinArray(int []array) {
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i]+" ");
        }
    }
    public static void main4(String[] args) {
        int []array={1,2,3,4,5,6,7,8,9,10};
        prinArray(array);
    }


    //实现一个方法 transform, 以数组为参数, 循环将数组中的每个元素 乘以 2 , 并设置到对应的数组元素上.
    public static void transform(int []array){
        for(int i=0;i< array.length;i++){
            array[i]=array[i]*2;
        } System.out.println(Arrays.toString(array));
    }
    public static void main3(String[] args) {
        int []array={1,2,3,4};
       transform(array);
    }


    //实现一个方法 sum, 以数组为参数, 求数组所有元素之和
    public static int sum(int []array){
        int add=0;
        for(int i=0;i<array.length;i++){
            add+=array[i];
        }return add;
    }
    public static void main2(String[] args) {
        int []array={1,2,3,4,5,6};
        System.out.println(sum(array));
    }


    //实现一个方法 avg, 以数组为参数, 求数组中所有元素的平均值
    public static double avg(int []array){
        double add=0.0;
    for(int i=0;i<array.length;i++){
        add+=(array[i])/(double)(array.length);//这里需要把数组长度强制类型转换
    }return add;
    }
    public static void main1(String[] args) {
        int []array={1,2,3,4,5,6};
        System.out.println( avg(array));

    }
}
